Cloud-Based Game Slice Generation and Frictionless Social Sharing with Instant Play

ABSTRACT

Methods enable creation of a game slice from a game. Plurality of games is provided for presentation on a display device. Each game is identified by an image. Selection activity is detected at the image of one of the games. In response to the selection, game code of the selected game is executed to enable game play of an unlocked game. The selected game is streamed to the display device. User interaction related to the game play is received. A recording of the game play is examined to identify portions of the game for generating a game slice, which are returned in a suggested list for selection. Game slice is generated for a selected portion from the list. A recording of the game play for the game slice is associated as a primary video segment. The game slice and the primary video segment are provided for sharing over a network.

CLAIM OF PRIORITY

This application is a continuation application under 35 U.S.C. 120 andclaims priority from co-pending U.S. application Ser. No. 13/797,900,filed on Mar. 12, 2013, and entitled, “Cloud-Based Game Slice Generationand Frictionless Social Sharing with Instant Play,” which claimspriority under 35 U.S.C. 119 (e), to U.S. Provisional Patent ApplicationNo. 61/745,543, filed on Dec. 21, 2012, and entitled “Cloud-Based GameSlice Generation and Frictionless Social Sharing with Instant Play”, thedisclosures of which are herein incorporated by reference in theirentirety.

BACKGROUND

1. Field of the Invention

The present invention relates to methods and systems for processing andsharing portions of video games over a network.

2. Description of the Related Art

The video game industry has seen many changes over the years. Ascomputing power has expanded, developers of video games have likewisecreated game software that takes advantage of the growing computingpower. To this end, video game developers have been coding games thatincorporate sophisticated operations and mathematics to produce a veryrealistic game experience.

In addition to accommodating for the expanding computing power, the gamedevelopers are also developing online games that increase theinteraction between user and the gaming system. The interactive onlinegames provide the ability for a user to interactively play against orwith other users over the Internet and capture such interactions.Additionally, with the growing trend in cloud-based computing, the gamedevelopers are developing new ways for playing existing legacy games andfor developing new games by taking advantage of the increased computingpower and increased user interactivity. The cloud-based computingsystems may include a remote processing server that executes a gameapplication, and communicates with a local client that can be configuredto receive input from users and render video on a display.

It is in this context that embodiments of the invention arise.

SUMMARY

Embodiments of the present invention provide methods and systems forproviding access to games over a cloud game network and processing gameslices made or defined from larger games or full game titles. It shouldbe appreciated that the present invention can be implemented in numerousways, such as a process, an apparatus, a system, a device or a method ona computer readable medium. Several inventive embodiments of the presentinvention are described below.

In one embodiment, a method is provided. The method includes providing aplurality of games for presentation on a display device. Each one of theplurality of games is identified by an image. Selection activity isdetected at the image of one of the plurality of games. In response tothe detected selection activity, game code of the selected game isexecuted to enable game play of an unlocked game. The selected game isstreamed to the display device and user interaction related to the gameplay is received. The user interaction is used to affect an outcome ofthe game. A recording of the game play is examined to identify portionsof the game for generating a game slice. The identified portions arereturned in a suggested list for selection. Each identified portion isless than an entire part of the game. A game slice is generated for oneof the portions selected from the suggested list. A recording of thegame play for the game slice of the game is saved. The recording isassociated with the game slice as a primary video segment. The gameslice and the primary video segment are enabled to be shared over anetwork.

In one embodiment, available game slices for the game are verified todetermine if the game slice has already been defined for the portion ofthe game prior to generating the game slice.

In one embodiment, the portion used to define the game slice includes atleast one of a trigger event, a task to be performed, a sequence ofsteps to be followed, a challenge to be handled, or any combinationsthereof.

In one embodiment, the game slice defined for the game inherits set-upparameters of the game. The set-up parameters are used to define one ormore of game state, game attributes and game controls for enabling gameplay of the portion of the game defined in the game slice.

In one embodiment, the game controls for interacting with the game sliceare selected for specific type of device used for providing interactionduring game play.

In one embodiment, game sequence of game play is analyzed for the gameleading up to the portion defined in the game slice. Artificialintelligence (AI) graphic overlays are generated for the game slicebased on the analysis. The AI graphic overlays are passive overlays. TheAI graphic overlays are returned for rendering with the game slice.

In one embodiment, interaction over the network by any one of the usersis detected at the game slice. The interaction causes selection of theportion of the game defined in the game slice for game play. A secondaryvideo segment is generated for the game play of the game slice based onthe interaction. The secondary video segment is associated with the gameslice. Sharing of the secondary video segment with other users over thenetwork is enabled for the game slice.

In one embodiment, options are provided to unlock additional portions ofthe executable code of the game to enable game play of the additionalunlocked portions of the game.

In one embodiment, users selection from one or more social network arereceived for sharing the game slice. A post is generated for presentingto each of the selected users in accordance to requirements specified bythe respective users for receiving the post on the corresponding socialnetworks.

In one embodiment, a suggested list of a plurality of game slices forgame play is generated. The game slices in the suggested list belong tothe selected game or to the plurality of games presented for selection.The suggested list of game slices is presented for sharing with otherusers.

The various embodiments define ways for creating the game slices thatare shared with other users over a cloud in a frictionless manner byloading executable code of a game on the cloud game network for instantplay and providing information related to portions of the game to enablethe users of a network, such as cloud game network or a social network,to create the game slice. The game slice provides a sampling of aportion of the game that inherits setup parameters pre-defined for thegame or defined for the game during game play. In one embodiment, usersare not required to sign up for the game, purchase the game, set-up thegame parameters in order to create, play or sample the game slice.Further, the game slice may be shared with other users of a socialnetwork by posting a link to the game slice in a newsfeed or socialstream. When users access the game slice for play, the executable codeof the game slice is loaded and executed on the cloud game network toenable instant play and a rendition of the game slice play is providedon the display of the client device. Alternately, the game slice isprovided in the newsfeed or stream of the social network so as to enablethe users to directly access and play the game within the newsfeed orstream of the social network. The one or more game plays are recorded togenerate primary video segments and posted to the cloud game network forsharing with other users of the network, thereby providing africtionless access to the game slice of the game stored, loaded andexecuted on the cloud game network. Additional game plays are used togenerate secondary video segments that are also posted to the cloud gamenetwork, for example, for sharing with other users of the network.

Other aspects of the invention will become apparent from the followingdetailed description, taken in conjunction with the accompanyingdrawings, illustrating by way of example the principles of theinvention.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention may best be understood by reference to the followingdescription taken in conjunction with the accompanying drawings inwhich:

FIG. 1 illustrates a block diagram of a generic system used forprocessing game slices of a game over a game network, in accordance withan embodiment of the invention.

FIG. 2 illustrates a user interface rendering the plurality of games andplurality of game slices, in accordance with an embodiment of theinvention.

FIG. 2 a illustrates a user interface rendering a primary video segmentof a game slice of the game, in response to passive selection activity,in accordance with an embodiment of the invention.

FIG. 3 illustrates an alternate embodiment of the user interfacerendering the plurality of games and game slices illustrated in FIG. 2.

FIG. 4 illustrates an alternate embodiment of the user interfacerendering the plurality of games and game slices illustrated in FIGS. 2and 3.

FIG. 5 illustrates a flow chart of operations of a method for processingand sharing game slices over a game network, in accordance with anembodiment of the invention.

FIG. 6 illustrates a simplified flow chart of operations for a methodfor processing game slices over a cloud game network, in accordance withan embodiment of the invention.

DETAILED DESCRIPTION

The following embodiments describe methods and systems for processinggame slices over a game network. It will be obvious, however, to oneskilled in the art, that the present invention may be practiced withoutsome or all of these specific details. In other instances, well knownprocess operations have not been described in detail in order not tounnecessarily obscure the present invention.

Generally speaking the various embodiments describe ways to process gameslices of a game over a cloud game network and share the game sliceswith other users for instant play in a frictionless manner. Each gameslice is a portion of the game that is less than an entire part of thegame. In some embodiments, the game slices are defined by users duringgame play. In response to user request for accessing one or more games,a plurality of game slices for the particular game or for a plurality ofgames are identified and returned in a graphical user interface (GUI)format for rendition on a display of a client device. The informationreturned for rendition also includes an initial image for each of theplurality of the games. User activity proximate at the GUI is monitored.When a passive selection activity is detected proximate to an initialimage of a select one of the game, a primary video segment for one ofthe game slices of the game is rendered.

During the rendering of the primary video segment, if an activeselection activity is detected either proximate to the initial image ofthe game or at the primary video segment of the game slice of the game,an executable code for the game slice is loaded in the cloud gamenetwork. The loaded executable code is rendered to enable one or moreplays of an unlocked subset of the game defined within the game slice.The one or more plays of the unlocked subset of the game are recorded todefine one or more secondary video segments. The secondary videosegments are posted to the cloud game network to enable sharing of thesecondary video segments for the game slice with other users of thecloud game network or one or more social networks of a user.

With the above general understanding of the various embodiments, exampledetails of the embodiments will now be described with reference to thevarious drawings. FIG. 1 illustrates a system used for processing gameslices over a cloud game network, in accordance with an embodiment ofthe invention. In some embodiments, the cloud game network may include aplurality of virtual machines (VMs) running on a hypervisor of a hostmachine (or simply a host), with one or more virtual machines configuredto execute a game processor module utilizing the hardware resourcesavailable to the hypervisor of the host. As shown, the system 10includes a game server 300 executing the game processor module thatprovides access to a plurality of interactive video games and associatedgame slices and a game client 100 for requesting access to games over anetwork 200, such as the Internet, and for rendering the games/gameslices returned by the game server 300 on a display device 12. It shouldbe noted that the game client 100 is any type of computing device havingat least a memory and a processor module that is capable of connectingto the game server 300 over the network 200 and for interacting with thegame server to execute a rendered portion of the video game/game slice.Some examples of game client device include a personal computer (PC),home theater PC, general purpose computer, mobile computing device, orany other types of computing devices that can interact with the gameserver to execute a video game. The game server may be any type ofserver computing device available in the cloud, including a virtualmachine executing on a host, and accessed remotely through the network200.

The game client (or simply “the client”) requests access to the gamesthrough a user interface 110 provided on a display of the client 100. Insome embodiments, the user interface 110 may include a userauthentication module to validate a user before servicing a request forproviding access to the games from the game network. In response to therequest, the game server identifies a plurality of video games andassociated game slices, populates a graphical user interface (GUI) withthe identified set of plurality of video games and associated gameslices and returns the user interface to a client for rendering at thedisplay 12. Each video game may include an initial image associated withit that is representative of the video game. The GUI is populated withthe identified video games, associated initial images and returned tothe client device for rendering. Each game is associated with aplurality of game slices. In some embodiments, the game slices aredefined by users.

In some embodiments, each user defined game slice may include a triggerevent, a task to be performed, a sequence of steps or moves, or achallenge to be handled or overcome. In one embodiment, each game slicedefined represents a pre-selected portion of the associated game that isless than an entire part of the game. In one embodiment, each of theplurality of game slices of each of the plurality of games may beassociated with a primary video segment and a plurality of secondaryvideo segments shared by other users. In another embodiment, some of theplurality of game slices may be associated with a primary video segmentbut may not have any secondary video segments associated with it. In oneembodiment, the GUI generated with the video games and game slices, inresponse to the request from the client, may provide indicators toidentify which of the game slices have one or more secondary videosegments associated with it and which of the game slices have nosecondary video segments associated with it. The generated GUI of videogames and game slices is rendered at the display 12 of the client device100. The display 12 may be any of type of display that is capable ofvisually rendering the GUI interface identifying video games/game slicesand includes such devices as a monitor or television utilizing any ofvarious types of display technologies, such as LCD, plasma, and DLPtechnologies. Though not specifically shown, the display 12 may alsoutilize a projector which projects a GUI image onto a display screen,wall, or other flat surface for viewing.

User activity at the GUI is monitored and analyzed to determine type ofactivity detected at the GUI. When a passive selection activity isdetected proximate to an image of one of the plurality of games, aprimary video segment of a game slice of the game is identified forrendering at the display 12 of the client device. In one embodiment,when all the game slices within the game or some of the game sliceswithin the game have primary video segment associated with it, the gameslice whose primary video segment is selected for rendering may be basedon a selection criterion that is popularity-based on temporal-based. Forinstance, the game slice selected for rendering the associated primaryvideo segment, may be the popular game slice in the cloud game networkor in a social network. Alternately, the game slice selected forrendering the primary video segment may be a newly created game slice, agame slice recently posted for sharing, a game slice posted by a friendof a user, a first game slice in the game, most recently executed gameslice in the game, etc. The selection criterion of the game slice whoseprimary video segment is selected for rendering may be pre-defined in aselection algorithm defined in the game server and used duringgeneration of the GUI returned to the client device.

In some embodiments, the primary video segment may be a recorded play ofthe game slice that was generated earlier by the user providing thecurrent passive selection activity or may be generated by another userwithin the game network or social network, and posted to the game serverand made available for sharing.

In one embodiment, during the rendering of the primary video segment,further user activities at the initial image of the game or at theprimary video segment of the game slice currently rendering at thedisplay, are monitored. When an active selection activity is detected atthe initial image of the game or at the primary video segment, anexecutable code of the game slice associated with the primary videosegment is identified and an instance of the executable code is loadedon the game server. The active selection activity, in one embodiment, isprovided as inputs in the form of a touch, voice, gesture, one or moretaps, one or more clicks, input through a game controller, etc. Theabove list of inputs are exemplary and should not be consideredrestrictive. Additional form of inputs that can be provided through theclient device may be employed.

In one embodiment, depending on the popularity of the game slice of thegame, an instance of the executable code may already be loaded at thecloud game network. In this embodiment, in response to the activeselection activity, the instance of the game slice is rendered forinstant play. In one embodiment, instant play is enabled by loading theexecutable code including game objects that are relevant for playing thegame slice. The instant play, as used in this application, is defined asthe ability to play the game defined within the game slice using thesetup parameters that are inherited from an original game play orpre-defined for the game. In one embodiment, the instant play may notrequire a set-up process for defining the variable parameters but usespre-defined setup parameters defined for the game thereby addressingsome of the latency that are normally associated with conventional gameplay. In another embodiment, in response to the active selectionactivity, the instance of the executable code is loaded and rendered forinstant play. In this embodiment, a latency is experienced during theloading of the instance of the executable code. In one embodiment, theexecutable code is loaded and rendered on the virtual machine of thecloud game network. In one embodiment, depending on the popularity ofthe game slice at the cloud game network or the social network of theuser, the instance of the executable code is loaded and rendered on avirtual machine with appropriate bandwidth to provide access for instantplay at the client device. For instance, when a game slice is highlypopular amongst the users within a social grid of a social network of auser initiating the activities or amongst the users of the cloud gamenetwork, a virtual machine with a high bandwidth is selected for loadingand rendering the instance of the executable code in the cloud gamenetwork so as to provide lower latency and faster access for instantplay of the game slice.

Alternately, the executable code of a game slice that is not as popularmay be assigned to load and render on a virtual machine with lowerbandwidth. Thus, the VMs in the cloud game network are selected toaddress the network/latency/resource requirements for enabling the usersto play the game slice so as to provide an enriching game playexperience. Further, the assignments of the VMs are optimized based onthe changing demands of the game slices. Thus, when a newly generatedgame slice with no secondary video segments is accessed for instantplay, the executable code of the game slice is loaded and rendered on aVM with lower bandwidth. However, over time, when the popularity of thisgame slice grows, an instance of the executable code of the game slicemay be loaded and rendered on a VM with greater bandwidth. This loadedexecutable code is made available for users for instant game play.

The executable code, in one embodiment, provides at least minimumfunctionality to play an unlocked subset of the game defined by the gameslice. The executable code, thus, may include all objects or less thanall objects of game present in a full version of the game from which thegame slices was created. These objects are relevant for instant play ofthe game defined within the game slice. For instance, the loading ofexecutable code includes loading of game code, game characters, graphicoverlays, game objects, object states, object attributes, current stateand other game attributes of the game slice that enables playing thegame slice. In one embodiment, the game slice may inherit the set-upparameters of the game when the game slice was created by a user. Inthis embodiment, the game objects, graphic overlays, etc., may inheritthe set-up attributes of the game defined by a user when the user playedthe game and defined the game slice. In another embodiment, the gameobjects and overlays for the game slice will inherit a set ofpre-defined setup parameters. Thus, the executable code of the gameslice will enable a user to select a game slice and instantly play thegame slice without going through the tedious process of signing-up forthe game, buying the game, and/or setting-up the game attributes/optionsbefore playing the game defined within the game slice. The variousembodiments described herein provide for a frictionless access to a gameslice of the game executing on the cloud game network. The game slice isalso distributed and accessed by users through one or both of a socialnetwork or a cloud game network. The distribution and access through thesocial network is based on a social relevance defined within a socialgrid of the social network. Social grid, as used in this application, isdefined as a social graph that defines various levels of socialconnections and relations amongst users within a social network.

In addition to providing at least the minimum functionality, in oneembodiment, the executable code may provide information related topre-defined setup parameters for a type of device used for providingpassive and active selection activities. In this embodiment, the type ofdevice used for providing the selection activities is detected andinformation related to the appropriate pre-defined setup parameters areprovided with the executable code. The information may be used to definecontrols for instant play of the game slice at the client device. Theinformation defining controls may be presented in a pop-up window, amenu, or in any other form at the display of the client device.

In one embodiment, the cloud game network is configured to detect thetype of client device associated with a user providing the selectionactivities, and/or also a type of controller available for the user toprovide input to the cloud-based video game. For example, in oneembodiment, when a user logs in to the cloud game network, they may bepresented with an option to designate the type of client device withwhich they are accessing the cloud game network. In one embodiment, aseries of client device options are presented from which the user mayselect one corresponding to their client device. Similarly, the user mayalso be presented with an option to designate the type of controllerdevice they will use to play a video game. In one embodiment, a seriesof controller options can be presented to the user, from which the usermay select to designate a controller type corresponding to theircontroller hardware. In other embodiments, the cloud game network can beconfigured to automatically detect the client device type and/or thecontroller device type.

For example, at the time of login, the client device may sendinformation to the game server identifying itself as well as a connectedcontroller device (e.g. in response to a request from the game server).Based on this information, the game server (i.e., cloud game server) maydetermine an appropriate video game output configuration and inputparameter configuration to provide a gaming experience optimized for theuser's client device and controller device. In one embodiment, a look-uptable is employed to determine video game configuration and inputparameter configuration based on a detected client device and a detectedcontroller device. These configuration and input parameters are used togenerate the pre-defined setup parameters.

It should be appreciated that a given video game may be developed for aspecific platform and a specific associated controller device. However,when such a game is made available via a cloud gaming system aspresented herein, the user may be accessing the video game with adifferent controller device. For example, a game might have beendeveloped for a game console and its associated controller, whereas theuser might be accessing a cloud-based version of the game from apersonal computer utilizing a keyboard and mouse. In such a scenario,the input parameter configuration can define a mapping from inputs whichcan be generated by the user's available controller device (in thiscase, a keyboard and mouse) to inputs which are acceptable for theexecution of the video game and such configurations are provided in thepre-defined setup parameters.

In another example, a user may access the cloud gaming system via atablet computing device, a touchscreen smartphone, or other touchscreendriven device. In this case, the client device and the controller deviceare integrated together in the same device, with inputs being providedby way of detected touchscreen inputs/gestures. For such a device, theinput parameter configuration may define particular touchscreen inputscorresponding to game inputs for the video game. For example, buttons, adirectional pad, or other types of input elements might be displayed oroverlaid during running of the video game to indicate locations on thetouchscreen that the user can touch to generate a game input. Gesturessuch as swipes in particular directions or specific touch motions mayalso be detected as game inputs. In one embodiment, a tutorial can beprovided to the user indicating how to provide input via the touchscreenfor gameplay, e.g. prior to beginning gameplay of the video game, so asto acclimate the user to the operation of the controls on thetouchscreen.

In some embodiments, the client device serves as the connection pointfor a controller device. That is, the controller device communicates viaa wireless or wired connection with the client device to transmit inputsfrom the controller device to the client device. The client device mayin turn process these inputs and then transmit input data to the gameserver via a network (e.g. accessed via a local networking device suchas a router). However, in other embodiments, the controller can itselfbe a networked device, with the ability to communicate inputs directlyvia the network to the game server, without being required tocommunicate such inputs through the client device first. For example,the controller might connect to a local networking device (such as theaforementioned router) to send to and receive data from the game server.Thus, while the client device may still be required to receive videooutput from the cloud-based video game and render it on a local display,input latency can be reduced by allowing the controller to send inputsdirectly over the network to the game server, bypassing the clientdevice.

In one embodiment, a networked controller and client device can beconfigured to send certain types of inputs directly from the controllerto the game server, and other types of inputs via the client device. Forexample, inputs whose detection does not depend on any additionalhardware or processing apart from the controller itself can be sentdirectly from the controller to the game server via the network,bypassing the client device. Such inputs may include button inputs,joystick inputs, embedded motion detection inputs (e.g. accelerometer,magnetometer, gyroscope), etc. However, inputs that utilize additionalhardware or require processing by the client device can be sent by theclient device to the game server. These might include captured video oraudio from the game environment that may be processed by the clientdevice before sending to the game server. Additionally, inputs frommotion detection hardware of the controller might be processed by theclient device in conjunction with captured video to detect the positionand motion of the controller, which would subsequently be communicatedby the client device to the game server. It should be appreciated thatthe controller device in accordance with various embodiments may alsoreceive data (e.g. feedback data) from the client device or directlyfrom the game server.

In one embodiment, each of the plurality of game slices are sharablewith one or more users. The instance of the executable code of the gameslices may provide minimum functionality to enable instant play of thegame slice by the other users depending on the type of device selectedby the other users for game play of the selected game slices.Information regarding game plays of the selected one or more of the gameslices including passive and active selection activities at the gameslice are captured and stored in the cloud game network. The game playinformation is used in generating a suggested list of one or more gameslices to play, for users, based on the stored information of game playand social relevance of the users initiating the sharing and initiatingthe playing of the game slices. For instance, if users 1, 2, 3 each playa game slice GS 1 of game 1, and user 4 has a social relation with oneor more of users 1, 2, 3, then user 4 may be presented with game sliceGS 1 in the GUI when the user 4 accesses the game system or in a feedwithin a social network of user 4. The suggested list of game slicespresented to the users in the GUI are also organized in a pre-definedranking order. In one embodiment, the suggested list is organized gameslices is based on the social relevance of the users defining thepopularity of the game slices to the user requesting access to the gameslices.

In one embodiment, the active selection activity causes the suspensionof the currently rendering primary video segment and loading of aninstance of the executable code at the cloud game network. The loadedexecutable code is rendered at the cloud game network and a rendition ofthe game is provided at the display of the client device to enableplaying of an unlocked subset of the game defined within the game slice.During the playing of the unlocked subset of the game, the game play isrecorded. The recorded game play is used to generate secondary videosegments. The secondary video segments are posted to the game server andare made available for sharing.

To assist in the processing of the game slice at the game server 300, agame processor module 310 is provided. The game processor module 310 isconfigured to execute on the game server 300 and includes a plurality ofmodules that interact with one another and with the client device toassist in the processing of the game slices and to provide the primaryand secondary video segments of game slices over a cloud game network.Some of the modules within the game processor 310 include a game managermodule 312, a game code mapper 314, an activity selector 316, a gameplayrecorder 318, and a video segment generator 320. In addition to theabove listed modules, the game processor module 310 may also include anAI character overlay module 317. The above list of modules is exemplaryand should not be considered restrictive. Fewer or additional modulesmay be provided in the game processor module for processing the gameslices, in various embodiments of the invention.

The game manager module 312 is configured to identify a plurality ofgames and plurality of game slices for rendering at the client device.The game manager module 312 receives a request for game access from aclient device. In response, the game manager module 312 identifies theplurality of games and game slices and generates a graphical userinterface (GUI) for presenting the games and game slices at a clientdevice. In one embodiment, the game manager module 312 interacts with auser database 304 to determine the user's attributes including user'spreference of the type or genre of games in order to identify the gamesand game slices for rendering and interacts with the game database 306to retrieve the identified plurality of games and game slices based onthe user's preference. In another embodiment, the games and game slicesmay be identified based on what is popular within anyone or both of thegame network and/or the social network of a user from whom a request forthe games is received. In this embodiment, the game manager module 312interacts with a social media database 308 and/or game database 306 toidentify the games/game slices that are popular within the social medianetwork and/or the cloud game network and retrieves the games/gameslices based on the information obtained from the social media networkand/or cloud game network. The retrieved plurality of games and gameslices are presented in the GUI returned to the client for rendering. Inone embodiment, the cloud game network (or simply a “game network”) ispart of a cloud system that includes a collection of virtual machinesrunning on a hypervisor of a host with one or more virtual machinesconfigured to execute a game processor module using hardware resourcesavailable to the hypervisor.

In one embodiment, the game manager module 312 may also include a rankermodule 312-a. The ranker module 312-a organizes the identified pluralityof games and game slices based on a pre-defined ranking order definedwithin when generating the GUI and returns the organized games and gameslices to the client device for rendering at the display 12. In oneembodiment, the ranker module may determine the popularity of the gamein the social network/game network and organize the game/game slicesbased on the popularity. In another embodiment, the organization may bebased on different a pre-defined ranking criterion.

FIGS. 2, 3 and 4 illustrate the various representation of GUI generatedby the game manager module 312 returned to the client for renderingbased on the user preferences and/or based on information obtained fromthe game network/social network. In one embodiment as illustrated inFIG. 2, the game manager module 312 identifies the various games thatare popular or highly rated within the game network/social network andgenerates the GUI with the identified games organized in a ranking orderof popularity. In one embodiment, the games/game slices returned in theGUI are organized into categories. FIG. 2 illustrates a sampling of thevarious categories into which the games are organized by the the rankermodule 312-a within the game manager 312.

The categories used to organize the games, such as “top rated picks”212, “today's hot picks” 214, “suggested picks” 216, “newly added games”218, etc., are exemplary and should not be considered restrictive.Additional, fewer or different ways of organizing the games may beemployed. As illustrated in FIG. 2, each game presented in each categorymay include a rating indicator to identify the relativerating/popularity of the game within each category as established withinthe game network. It should be noted herein that each game/game slice isassociated with an initial image that is representative of the gameand/or game slices, and the game manager module 312 includes theseinitial images when presenting the games/game slices within the GUI. Inthe embodiment illustrated in FIG. 2, the GUI is configured to renderonly the games and not the game slices associated with each game. As aresult, the GUI returned for rendering includes the games and an initialimage for each game. When a selection activity, such as a passiveselection activity 215, is detected proximate to the initial image of agame, a primary video segment of a game slice is selected for renderingat the display as a full or partial overlay over the GUI, as illustratedin FIG. 2 a. The user input defining passive selection activity 215 maybe of any form of user input including “hovering over” the initial imageof a game/game slice, mouse-over, finger action, touch, voice, arrowkeys, controller keys, single click, double click, single tap, doubletap, gestures (e.g., single finger, multi-finder or multi-hand), or anyother user input device/control actions provided through the clientdevice. Alternately, in response to the passive selection activity 215,the primary video segment may be rendered as a pop-up window. Theoverlay or pop-up window rendering are exemplary and should not beconsidered restrictive. Other ways of rendering the primary videosegment may be adapted. Details about the selection activity will bediscussed in greater detail with reference to the activity selectormodule 316.

FIG. 3 illustrates another representation of GUI organized and returnedby the game manager module 312, in one embodiment. In this embodiment, arepresentative set of game slices or a complete set of game slices foreach game are organized under the respective games and returned forrendering at the client device. Each game slice is associated with aninitial image that is representative of the game slice. As illustratedin FIG. 3, game slices for game 1 are organized within box 352 andinclude game slice 1-1, game slice 1-2, game slice 1-3, game slice 1-4.Similarly, game slices for game 2 are organized within box 354, gameslices for game 3 within box 356, etc. When a selection activity, suchas a passive selection activity 215, is detected proximate to an initialimage of a game slice, a primary video segment of the game slice isrendered at the display, in one embodiment. For instance, as illustratedin FIG. 3, the primary video segment associated with game slice 2-2 willbe selected for rendering in response to the passive selection activityproximate to the image GS2-2. In this embodiment, the primary videosegment may be overlaid over the GUI presenting the games. In anotherembodiment, the primary video segment may be presented in a differentwindow or in a pop-up window, etc.

In yet another embodiment, the video games and available game slices areorganized in the GUI as illustrated in FIG. 4. In this embodiment, thegame slices for each game may be associated with primary video segmentsand may or may not be associated with any secondary video segments. TheGUI generated by the game manager module 312 provides additionalindicators to indicate availability of the different video segments. Asillustrated in FIG. 4, game 1 includes 4 game slices, GS1-1, GS1-2,GS1-3, GS1-4, with each game slice having a primary video segment and aplurality of secondary video segments. Game 2 includes game slicesGS2-1, GS2-2, and GS2-3 with each of the game slices having a primaryvideo segment and no secondary video segments associated with it andgame 3 includes game slices GS3-1 and GS3-2 with each game slice GS3-1including a primary video segment. However, game slice GS3-2 does nothave any secondary video segments while game slice GS3-1 includes aplurality of secondary video segments associated with it. In oneembodiment, the number of secondary video segments may be representativeof the popularity of the game slice within a social network and/or thegame network. In this embodiment, when a passive selection activity isdetected at game 2 or at any of the game slices of game 2, the gamemanager module will render the primary video segment of a correspondinggame slice of game 2. Additionally, the game manager module may interactwith other modules, such as activity selector and video segmentgenerator to provide an interface and controls to enable generation ofsecondary video segments for the game slice, as illustrated in box 420.Alternately, when a passive selection activity is detected at game sliceGS3-2 of game 3, appropriate primary video segment from game slice 3-2will be rendered with option to generate one or more secondary videosegments, as illustrated in box 430. Similarly, when a passive selectionactivity is detected at game 1, primary video segment of any one of thegame slices will be rendered, as illustrated in box 410. The selectionof the game slice for which the primary video segment is rendered may bedefined based on a selection criterion available to the activityselector. Boxes 410, 420, 430 may be overlays, pop-up windows, orrendered on a separate window at the user interface of the display ofthe client device.

Returning to FIG. 1, the GUI with the games and game slices are returnedby the game manager 312 to the client device 100 for rendering on thedisplay 12. User activity at the GUI is monitored by the activityselector module 316. The activity selector 316 includes a passiveselection detector 316-a and an active selection detector 316-b. When apassive selection activity is detected at the game or at one of the gameslices of the game, the passive selection detector 316-a within theactivity selector 316 is triggered in response to the detection. Thepassive selection activity proximate to an initial image of the game orinitial image of the game slice of the game may be, as described above,in the form of a hover 215, a mouse-over, etc.

In one embodiment, the games and game slices defined in the GUI may beaccessed at the client device through a social network of a user. Inthis embodiment, the selection activity at the games may be detectedusing an activity detector 319 at the social network server andtransmitted to the activity selector 316 for processing. The activityselector 316 analyzes the selection activity to determine if theselection activity is a passive selection activity or an activeselection activity and triggers the appropriate selection detector 316-aor 316-b. When a passive selection activity is detected, the passiveselection detector 316-a identifies a primary video segment associatedwith a game slice of the game for rendering. The game slice of the gameselected for rendering the primary video segment may be one of the gameslice that is selected based on ranking criteria (i.e., the most populargame slice of the game), a recently created game slice, first game slicegenerated for the game, first game slice generated by a user thatprovided passive selection activity, or a game slice that is popularwithin a social network of the user, to name a few. The primary videosegment is returned to the client device for rendering at the display12.

In response to receiving the primary video segment (when available) atthe client device, the primary video segment is rendered at the display12. In one embodiment, during the rendering of the primary videosegment, additional user interactions are monitored at the primary videosegment. When an active selection activity is detected by the activityselector module 316 at the primary video segment, the activity selectormodule 316 triggers the active selection detector 316-b. The activeselection detector 316-b interacts with the game code mapper to identifyexecutable game code for the game and the game slice associated with theprimary video segment and loads an instance of the executable game codeto the game server.

The game code mapper is configured to map the executable game code forthe game and for each of the game slices of the game from the gamedatabase 306. As a result, the game code mapper returns an instance ofthe mapped game code associated with the game slice and one or morecomponents/objects required for rendering the game slice, in response tothe request from the active selection detector 316-b. The returned gamecode includes server-side code and the client-side interface. Theserver-side code is loaded onto the game server and the client-sideinterface is returned to the client device for rendering. The loading ofthe executable game code causes loading of the game code, gamecharacters, game objects, game object attributes, game attributes,current game state data, game object state, graphic overlays, etc., onthe game server. The loaded executable code represents an unlockedsubset of the game within the game slice for which the primary videosegment is rendered. An instance of the executable code of the gameslice is loaded onto a virtual machine server based on the popularity ofthe game slice within the game network and/or a social network. Forexample, the game slice that is most popular may be loaded onto avirtual machine with greater bandwidth than the game slice that is lesspopular so as to provide access to play the game slice without muchlatency. In some embodiments, based on the popularity of the game slice,the instance of the executable code may be pre-loaded onto a virtualmachine server and access provided as and when needed to minimize thelatency for playing the game slice.

Each game play of the unlocked portion of the game defined within thegame slice is recorded using the gameplay recorder module 318. The gameplay includes user activities and user inputs at the game slice. Therecorded game play of the unlocked portion of the game, in oneembodiment, is used to generate secondary video segments using a videosegment generator 320. The generated video segments, i.e., secondaryvideo segments, are posted to the game database in the game server forsharing with other users of the game network or with other users of asocial network associated with a user that provided the selectionactivity at the game slice.

In one embodiment, the game slice generator 322 will interact with theAI character overlay module 317 to determine the character and graphicoverlays required for the game slice. The AI characters with the AIcharacter overlay may not be part of the original game code of the gameslice but is added by the AI overlay module to make the game slice lookmore realistic and as close to the original portion of the game from thewhich the game slice was defined as possible.

In one embodiment, in order to determine the AI character overlay, theAI character overlay module 317 will look up the game sequence of aplurality of game plays for the game slice to determine various outcomesand generate the AI character overlay based on the various gamesequences. It should be noted herein that the game slice may lock outcertain game actions and graphics that are outside of the game slice andrender the actual graphics and actions for the selected game slice. Forinstance, the game actions immediately preceding and immediatelyfollowing the game slice are locked so that a user cannot access thegame play beyond the game slice. The AI character overlay, thus, merelyprovides a passive overlay so as to provide realistic graphics duringthe play of the game slice. The selective locking of the gameactions/graphics and providing access to the selected mini-game slicehelps in saving system/network resources. It also helps in providingrequired access to the sample portions of the game without overwhelmingthe users with the complete game.

Game play of the game slice is recorded using the gameplay recorder andone or more of secondary video segments of the game slice are generatedfrom the recording using the video segment generator 320. The generatedsecondary video segments are associated with the game slice. Thesecondary video segments are uploaded by the video segment generator 320to the game database to enable sharing of the secondary video segmentswith other users of the game network and/or social network that aresocially related to a user providing selection activity.

The loaded game code of the selected game slice allows the user to playthe game slice, reply to a user post that was used to share the gameslice, generate a post sharing the game slice at one or more socialnetworks, and post game score for the selected game slice upon playing.In one embodiment, the game of the selected game slice also enablesusers to unlock additional portions of game code of the game to enablethe users to play the unlocked additional portions of the game.

In one embodiment, the game code may provide selective access to thegame slice by limiting the number of times the user can play the gameslice before locking the user out. Alternately, in another embodiment,the game code may provide selective access to the game slice and provideusers with an option to buy the game. For instance, the game code mayallow users providing active selection activity at the initial image ofthe game, to play the selected game slice for a pre-defined number oftimes before the locking the users out. The game code, in this instance,may allow the users to post and share the game scores with other usersin the game network and/or social network. Additionally, the game codemay provide incentives for users by allowing them to play the game basedon the amount of sharing initiated by the respective users. Theincentives may be commensurate with the level of sharing and theincentives may include unlocking of additional portions of the game,free tokens, free plays, etc.

With the detailed description of the various modules of the game server,a method for processing the game slices of an online game over a gamenetwork will now be described with reference to FIG. 5, in accordancewith an embodiment of the invention. FIG. 5 illustrates the process anddata flow of operations involved at both the client device side and thegame server side. The method begins at operation 510 wherein a requestfor accessing games is initiated at a client device. In response to therequest, a game access request notification is forwarded to the gameserver, as illustrated in operation 512. The game server performsinitialization of the game server, as illustrated in operation 550, andis ready to service any requests originating from the client device.

In one embodiment, the game server may be a virtual machine that is partof a cloud system and configured to execute a game processor. The gameserver receives the request from the client, as illustrated in operation552, uses the game manager within a game processor module 310 executingat the game server to query the appropriate databases, such as userdatabase to obtain user preferences, game database to obtain gamerelated information, a social database to obtain information related tosocial relevance of the games and/or game slices to a user and thepopularity of the games/game slices within the social network of theuser to identify the games and corresponding game slices, generate agraphical user interface (GUI) with the identified games and game slicesand return the GUI to the client for rendering, as illustrated inoperation 554. The game manager also identifies initial images for thegames and/or the game slices and includes the initial images for thegames and game slices in the GUI. The client device receives the GUI andrenders the GUI at the display device of the client device, asillustrated in operation 514.

User activity at the GUI is monitored at the games and game slicesrendered at the client device by a client-side code of the gameprocessor. When a passive selection activity is detected proximate to aninitial image of a game, as illustrated in operation 516, the clientdevice notifies the passive selection activity to the game serverrequesting service of the passive selection activity, as illustrated inoperation 518. The game server receives the notification of the passiveselection activity, as illustrated in operation 556, and the activityselector module of the game processor 310 executing at the game serveridentifies a primary video segment for a game slice within the selectedgame. The primary video segment is retrieved and returned to the clientdevice for rendering, as illustrated in operation 558.

The client device receives the primary video segment and renders thesame at the display of the client device, as illustrated in operation520. The primary video segment may be rendered as an overlay over theexisting GUI, on a pop-up window or in a new window. In one embodiment,the primary video segment will continue to render so long as the passiveselection activity is detected proximate to the initial image of thegame. While the primary video segment is being rendered, further useractivity is monitored at the GUI of the client device. When an activeselection activity is detected at the GUI, as illustrated in operation522, the game processor module 310 at the game server is notified of theactive selection activity detected at the GUI, as illustrated inoperation 524. The active selection activity may be detected at theprimary video segment, proximate to the initial image of the game orproximate to the initial image of the game slice of the game whoseprimary video segment is currently rendering on the display.

The activity selector module of the game processor receives thenotification from the client device, as illustrated in operation 560,and interacts with the game code mapper to identify executable code forthe game slice associated with the primary video segment. The identifiedexecutable code includes a server-side code and the client-sideinterface. The server-side code is loaded to the game server and theclient-side interface is returned to the client, as illustrated inoperation 562. The loaded executable code at the game server includesgame code and game objects/characters that are required to play the gamedefined within the game slice.

Additionally, the executable code may also include artificialintelligence (AI) character and graphic overlays provided by the AIcharacter overlay module to provide a more realistic rendition of thegame within the game slice. The client-side code includes interface andinformation defining controls to access the game slice for playing andfor generating video segments. The server-side code detects the clientdevice providing the selection activities, determines the type of theclient device and retrieves pre-defined setup parameters for renderingon the display of the client device. The pre-defined setup parametersincludes information used for defining the controls for playing the gameslice at the client device. The client-side code including interface andcontrol information is returned to the client device, as illustrated inoperation 564.

The client device receives the client-side executable interface andcontrol information and renders the same at the client device, asillustrated in operation 526. The rendered client-side executableinterface and control information enables users to access and play anunlocked subset of the game defined within the game slice. Game play ofthe unlocked subset of the game is detected through user activities andinteractions and such user activity and interactions are transmitted tothe gameplay recorder of the game processor for processing, asillustrated in operation 528.

The gameplay recorder receives the activities and interactions in theform of recorded gameplay from different users, as illustrated inoperation 566, and generates video segments for the unlocked subset ofthe game defined within the game slice using the recorded gameplay, asillustrated in operation 568. The gameplay recorder may interact withthe video segment generator within the game processor to generate thevideo segments of the recorded gameplay. In one embodiment, the videosegment generator may generate secondary video segments for the gameslice using the recorded gameplay of the users accessing the game slice.In this embodiment, the game slice is already associated with a primaryvideo segment.

The video segments generated by the video segment generator, in responseto the play of the unlocked subset of the game defined within the gameslice, are posted to the game network for sharing with other users ofthe game network or users of one or more social network associated withthe users, as illustrated in operation 570. After playing the unlockedsubset of the game within the game slice, a decision point 530 isreached, wherein user interactions are tracked to determine ifadditional games need to be accessed. If additional games need to beaccessed within the GUI, the process flows back to operation 516 whereinpassive selection activity is detected and the process of receivingaccess and playing the game slice within the game is performed. Ifadditional game need not be accessed, the process flows back tooperation 510 wherein the client device waits to receive a request forgame access. The process continues till a time-out event occurs or tillthe user exits the game system.

FIG. 6 illustrates flow chart operation of an alternate method forprocessing game slices over a cloud game network, in another embodimentof the invention. The method begins at operation 610, wherein aplurality of games is retrieved and returned for rendering on a displayof a client device, in response to a request for accessing gamesreceived from the client device. The games are presented on graphicaluser interface (GUI) at the client device. The games include a pluralityof game slices. Each game slice is a portion of the game that is lessthan the entire part of the game and is defined by a user. Passiveselection activity is detected proximate to an initial image of aselected one of the games at the GUI, as illustrated in operation 620.The passive selection activity causes the server to retrieve and presenta primary video segment for one of the plurality of game slicesassociated with the selected game for rendering at the display of theclient device. During the rendering of the primary video segment, activeselection activity is detected for the primary video segment, asillustrated in operation 630.

The active selection activity may be detected at the primary videosegment, at the selected game or proximate to the initial image of thegame. In response to the active selection activity, an instance of anexecutable code of the game slice of the game is loaded onto the cloudgame network. The executable code includes game code, game objects andother pertinent information required for playing the game. Theexecutable code may also include pre-defined setup parameters for aparticular type of client device. The pre-defined setup parametersprovide information to define controls for playing the game definedwithin the game slice. The executable code is rendered to enable instantplay of an unlocked subset of the selected game associated with the gameslice, as illustrated in operation 640. The rendered executable codeincludes information defining the controls for playing the game definedwithin the game slice. The selected ones of the game slices are alsoconfigured for sharing with other users over a network, such as thecloud game network or a social network. The one or more plays of theunlocked subset of the game is recorded to generate one or moresecondary video segments, as illustrated in operation 650. The secondaryvideo segments are posted to the cloud game network to enable sharingwith others users of a network. The network for sharing the secondaryvideo segments may be the cloud game network, one or more socialnetworks or combination thereof.

The presently described embodiments demonstrate how game slices ofvarious games within a game server are processed for frictionlesssharing with other socially relevant users within the game networkand/or social network. The various embodiments provide ways toselectively lock the game actions/graphics for portions of the gameoutside the game slice while providing access to only the requiredportions of the game defined within the game slice thereby savingsystem/network resources. It also helps in providing required access tothe sample portions of the game without overwhelming the users with thecomplete game.

The various embodiments, as described earlier, provides for frictionlessaccess to a selected portion of the games without requiring a user to gothrough the process of signing up for the game, progress through setupprocesses, progress through various game levels, etc., and the buyingprocess. The frictionless access provides users instant play access tothe selected portion of the game and may inherit the set-up parametersdefined by a user that generated the game slice or using pre-definedsetup parameters reducing the latency that is typically associated withthe game set-up.

While specific embodiments have been provided to demonstrate sharing ofportions of a game with other users, these are described by way ofexample and not by way of limitation. Those skilled in the art havingread the present disclosure will realize additional embodiments fallingwithin the spirit and scope of the present invention.

It should be noted, that access services, such as providing access togames of the current embodiments, delivered over a wide geographicalarea often use cloud computing. Cloud computing is a style of computingin which dynamically scalable and often virtualized resources areprovided as a service over the Internet. Users do not need to be anexpert in the technology infrastructure in the “cloud” that supportsthem. Cloud computing can be divided into different services, such asInfrastructure as a Service (IaaS), Platform as a Service (PaaS), andSoftware as a Service (SaaS). Cloud computing services often providecommon applications, such as video games, online that are accessed froma web browser, while the software and data are stored on the servers inthe cloud. The term cloud is used as a metaphor for the Internet, basedon how the Internet is depicted in computer network diagrams and is anabstraction for the complex infrastructure it conceals.

A Game Processing Server (GPS) (or simply a “game server”) is used bygame clients to play single and multiplayer video games. Most videogames played over the Internet operate via a connection to the gameserver. Typically, games use a dedicated server application thatcollects data from players and distributes it to other players. This ismore efficient and effective than a peer-to-peer arrangement, but itrequires a separate server to host the server application. In anotherembodiment, the GPS establishes communication between the players andtheir respective game-playing devices to exchange information withoutrelying on the centralized GPS.

Dedicated GPSs are servers which run independently of the client. Suchservers are usually run on dedicated hardware located in data centers,providing more bandwidth and dedicated processing power. Dedicatedservers are the preferred method of hosting game servers for mostPC-based multiplayer games. Massively multiplayer online games run ondedicated servers usually hosted by a software company that owns thegame title, allowing them to control and update content.

Users access the remote services with client devices, which include atleast a CPU, a display and I/O. The client device can be a PC, a mobilephone, a netbook, a PDA, etc. In one embodiment, the network executingon the game server recognizes the type of device used by the client andadjusts the communication method employed. In other cases, clientdevices use a standard communications method, such as html, to accessthe application on the game server over the internet.

Embodiments of the present invention may be practiced with variouscomputer system configurations including hand-held devices,microprocessor systems, microprocessor-based or programmable consumerelectronics, minicomputers, mainframe computers and the like. Theinvention can also be practiced in distributed computing environmentswhere tasks are performed by remote processing devices that are linkedthrough a wire-based or wireless network.

With the above embodiments in mind, it should be understood that theinvention can employ various computer-implemented operations involvingdata stored in computer systems. These operations are those requiringphysical manipulation of physical quantities. Any of the operationsdescribed herein that form part of the invention are useful machineoperations. The invention also relates to a device or an apparatus forperforming these operations. The apparatus can be specially constructedfor the required purpose, or the apparatus can be a general-purposecomputer selectively activated or configured by a computer programstored in the computer. In particular, various general-purpose machinescan be used with computer programs written in accordance with theteachings herein, or it may be more convenient to construct a morespecialized apparatus to perform the required operations.

The invention can also be embodied as computer readable code on acomputer readable medium. The computer readable medium is any datastorage device that can store data, which can be thereafter be read by acomputer system. Examples of the computer readable medium include harddrives, network attached storage (NAS), read-only memory, random-accessmemory, CD-ROMs, CD-Rs, CD-RWs, magnetic tapes and other optical andnon-optical data storage devices. The computer readable medium caninclude computer readable tangible medium distributed over anetwork-coupled computer system so that the computer readable code isstored and executed in a distributed fashion.

Although the method operations were described in a specific order, itshould be understood that other housekeeping operations may be performedin between operations, or operations may be adjusted so that they occurat slightly different times, or may be distributed in a system whichallows the occurrence of the processing operations at various intervalsassociated with the processing, as long as the processing of the overlayoperations are performed in the desired way.

Although the foregoing invention has been described in some detail forpurposes of clarity of understanding, it will be apparent that certainchanges and modifications can be practiced within the scope of theappended claims. Accordingly, the present embodiments are to beconsidered as illustrative and not restrictive, and the invention is notto be limited to the details given herein, but may be modified withinthe scope and equivalents of the appended claims.

What is claimed is:
 1. A method, comprising: providing a plurality ofgames for presentation on a display device, each one of the plurality ofgames being identified by an image; detecting selection of the image ofone of the plurality of games; executing game code of the selected gameto enable game play of an unlocked game, in response to the detectedselection; streaming the selected game to the display device andreceiving user interaction related to game play, the user interactionused in affecting an outcome of the game; examining a recording of thegame play to identify portions of the game for generating a game slice,the identified portions being returned in a suggested list forselection, wherein each identified portion is less than an entire partof the game; generating a game slice for one of the portions selectedfrom the suggested list; saving a recording of the game play for thegame slice of the game, the recording being associated with the gameslice as a primary video segment; and enabling sharing of the game sliceand the primary video segment with users over a network.
 2. The methodof claim 1, wherein generating a game slice further includes, verifyingavailable game slices for the game to determine if the game slice hasalready been defined for the portion of the game prior to generating thegame slice.
 3. The method of claim 1, wherein the portion used to definethe game slice includes at least one of a trigger event, a task to beperformed, a sequence of steps to be followed, a challenge to behandled, or combinations thereof.
 4. The method of claim 1, wherein thegame slice defined for the game inherits set-up parameters of the game,the set-up parameters are used to define one or more of game state, gameattributes and game controls for enabling game play of the portion ofthe game defined in the game slice.
 5. The method of claim 4, whereinthe game controls for interacting with the game slice are selected forspecific type of device used for providing interaction during game play.6. The method of claim 1, further includes, analyzing game sequence ofgame play for the game leading up to the portion defined in the gameslice; generating artificial intelligence (AI) graphic overlays for thegame slice based on the analysis; and returning the AI graphic overlaysfor rendering with the game slice, wherein the generated AI graphicoverlays are passive overlays.
 7. The method of claim 1, furtherincludes, detecting interaction at the game slice by any one of theusers over the network, the interaction causing selection of the portionof the game defined in the game slice for game play; generating asecondary video segment for the game play of the game slice based on theinteraction, the secondary video segment associated with the game slice;and enabling sharing of the secondary video segment for the game slicewith other users over the network.
 8. The method of claim 1, furtherincludes providing options to unlock additional portions of theexecutable code of the game to enable game play of the additionalunlocked portions of the game.
 9. The method of claim 1, whereinenabling sharing further includes, receiving selection of users from oneor more social networks for sharing the game slice; and generating apost for presenting to each of the selected users in accordance torequirements specified by the respective users for receiving the post onthe corresponding social networks.
 10. The method of claim 1, whereinsharing further includes, generating a suggested list of a plurality ofgame slices for game play, the game slices in the suggested listbelonging to the selected game or to the plurality of games presentedfor selection; and presenting the suggested list for sharing with theusers.